package com.nextel.project.pedido.mvc;

//import com.nextel.gui.items.ComboBoxCursorItem;
import com.nextel.project.Configuracion;
import com.nextel.project.cliente.ControlCliente;
import com.nextel.project.pedido.ControlPedido;
import com.nextel.project.usuario.ControlUsuario;
import com.nextel.project.usuario.bean.GeneralBean;
import com.nextel.ui.Key;
import com.nextel.ui.OListenerKey;
import com.nextel.ui.OScrollList;
import com.nextel.ui.OSoftKey;
import com.nextel.ui.OUILook;
import java.io.IOException;
import javax.microedition.lcdui.Image;
import pe.com.nextel.idioma.IdiomaManager;
import pe.com.nextel.main.MVCAction;
import pe.com.nextel.util.List;

/**
 *
 * @author eespinoza
 */
public class MVCCondicionPedido extends MVCAction implements OListenerKey {

    private OSoftKey cmdSigue, cmdAtras;
    private boolean flagForm; // para que no presione dos veces al momento de buscar
    private OScrollList lstMenu;
    private List lstFormaPago;

    protected void createView() {

        cmdSigue = new OSoftKey(Configuracion.BOTON_SEGUIR);
        cmdAtras = new OSoftKey(Configuracion.BOTON_ATRAS);

        formulario.setTitle(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_CONDICION), OUILook.PLAIN_SMALL_TITLE);//"Condici\u00F3n"
        formulario.addSoftKey(cmdSigue);
        formulario.addSoftKey(cmdAtras);

    }

    protected void createItems() {

        Image img = null;
        try {
            img = Image.createImage("/pedidos.PNG");
        } catch (IOException ex) {
            ex.printStackTrace();
        }

        lstMenu = new OScrollList(formulario.getWidth(), formulario.getHeight(),
                OUILook.PLAIN_SMALL_SOFTKEY, OUILook.PLAIN_SMALL_TEXT);

        lstMenu.isWithBorder = false;

        lstMenu.populate(getListaFormaPago());
        lstMenu.listenerKey = this;

        if (lstFormaPago != null) {
            Image[] images = new Image[lstFormaPago.size()];

            for (int i = 0; i < images.length; i++) {
                images[i] = img;
            }

            lstMenu.setImages(images, formulario.getBodyHeight());
        }

        formulario.add(lstMenu);

        flagForm = true;


    }

    private String[] getListaFormaPago() {


        lstFormaPago = ControlUsuario.getInstance().getListGeneral(GeneralBean.GENERAL_FORMA_PAGO);
        if (lstFormaPago != null) {
            String[] strlista = new String[lstFormaPago.size()];
            for (int i = 0; i < lstFormaPago.size(); i++) {
                GeneralBean elem = (GeneralBean) lstFormaPago.get(i);
                strlista[i] = elem.getDescripcion();
            }
            return strlista;
        }

        return new String[0];

    }

    public GeneralBean getSeleccionadoFormaPago() {
        if (lstFormaPago != null && lstFormaPago.size() > 0) {
            return (GeneralBean) lstFormaPago.get(lstMenu.getSelectedIndex());
        }
        return null;
    }

    public void performAction(OSoftKey c) {

        if (flagForm) {


            if (c == cmdSigue) {
                flagForm = false;

                if (lstFormaPago != null && lstFormaPago.size() > 0) {
                    ControlPedido.getInstance().currentPedido.setCondicionVenta(getSeleccionadoFormaPago().getCodigo());

                }

                destroy();

                ControlPedido.getInstance().setCurrent(ControlPedido.getInstance().mvcProductoPedido);



            } else if (c == cmdAtras) {
                flagForm = false;
                destroy();
                ControlPedido.getInstance().setCurrent(ControlCliente.getInstance().mvcClienteDetalle);
            }

        }
    }

    public void performKey(int indx) {

        if (flagForm) {

            if (indx == Key.Key_OK) {
                flagForm = false;
                if (lstFormaPago != null && lstFormaPago.size() > 0) {
                    ControlPedido.getInstance().currentPedido.setCondicionVenta(getSeleccionadoFormaPago().getCodigo());
                }
                destroy();
                ControlPedido.getInstance().setCurrent(ControlPedido.getInstance().mvcProductoPedido);
            }

        }
    }
}
